// vue项目接口
const express = require('express');
const router = express.Router();

const https = require('https');

// token 加 解 密
var {
    aesEncrypt,
    aesDecrypt,
    keys
} = require('../utils');


// 导入操作数据库模块
var {
    Mv,
    User
}  = require('../utils/model');

var multer = require('multer');   //上传图片

// 测试接口
router.get('/',(req,res)=>{
    res.json({
        msg:"vue  项目测试接口"
    });
});

// vue 电影接口
router.get('/movie',(req,res)=>{

    let {
        limit
    } = req.query;

    limit = limit *1 || 0;

    Mv.find({},{_id:0}).limit(limit).sort({id:-1})
    .then(result=>{
        res.json({
            msg:"请求电影数据成功",
            code:200,
            type:1,
            result
        });
    });
});



// 注册接口
router.post('/register',(req,res)=>{
    let body = req.body;  //获取前端传来的数据
    console.log(body);
    
    // 注册逻辑。。。。
    User.findOne({
        mobile:body.mobile
    }).then(data=>{
        if(data){
            // 用户名已经存在
            res.json({
                msg:"用户名已经存在，请重新注册！",
                code:200,
                data,
                type:0,   //前端会根据type  判断是否注册成功
            })
        }else{  
            // 立即注册
            body.time = new Date();
            User.insertMany(body).then(result=>{
                res.json({
                    msg:"注册成功！",
                    code:200,
                    result,
                    type:1,   //前端会根据type  判断是否注册成功
                })
            })
        }
    })
});


// 登录接口
router.post("/login",(req,res)=>{
    let body = req.body;

    User.findOne({
        mobile:body.mobile
    }).then(data=>{
        if(data.password == body.password){ 
            var token = aesEncrypt(data.mobile+data.username+data.password, keys);
            console.log(token);
            
            req.session.mobile = data.mobile;
            req.session.username = data.username;
            req.session.token = token;

            res.json({
                msg:"登录成功",
                code:200,
                type:1,
                data,
                token,    //一定要把 token 传给前端
            })
        }else{
            res.json({
                msg:"手机号或密码错误",
                code:200,
                type:0,
                data, 
            })
        }
    })
})


// 获取用户信息接口
router.get("/getuserinfo",(req,res)=>{
    console.log(req.session);
    let query = req.query;
    User.findOne({
        // mobile:req.session.mobile
        mobile:query.mobile
    }).then(result=>{
        res.json({
            msg:"获取用户信息成功",
            code:200,
            type:1,
            result,
        })
    })
    
})

// 选择硬盘存储
var storage = multer.diskStorage({
    destination: function (req, file, cb) {  // 上传的目录 
        cb(null, './public/upload');
    },
    filename: function (req, file, cb) {   // 上传的文件名
        cb(null, Date.now()+"nz1903"+file.originalname);
    }
})
var upload = multer({storage}).any();  //接收任何格式的文件

// 上传头像
router.post("/uploadimg",upload,(req,res)=>{
    console.log(req.files);
    if(req.files){
        let path = req.files[0].path;
        User.updateMany({  //修改path
            mobile:req.session.mobile
        },{
            $set:{
                avatar:path
            }
        }).then(data=>{
            res.json({
                msg:"上传头像成功",
                code:200,
                type:1,
                data,
                path,
                mobile:req.session.mobile
            })
        })
    }else{
        res.json({
            msg:"上传头像失败",
            code:200,
            type:0
        })
    }
    
})




// 暴露接口
module.exports = router;









